package com.examinantsdk.bean;

import androidx.annotation.Keep;

import com.chad.library.adapter.base.entity.MultiItemEntity;
import com.google.gson.annotations.SerializedName;

import java.io.Serializable;
import java.util.List;

/**
 * Create by liuwei on 2021/12/8.
 * 单词记忆法
 */

@Keep
public class MemoryTypeBean implements MultiItemEntity, Serializable {
    public static final int TYPE_CHUANCI = 1;
    public static final int TYPE_CIGEN = 2;
    public static final int TYPE_CHAICI = 3;
    public static final int TYPE_XIEYIN = 4;
    public static final int TYPE_SHIPIN = 5;
    public static final int TYPE_TUXING = 6;
    public static final int TYPE_DERIVATIVE = 7;
    private int type;
    private DetailDTO detail;

    public MemoryTypeBean() {
    }

    public MemoryTypeBean(int type) {
        this.type = type;
    }

    @Override
    public int getItemType() {
        return type;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    public DetailDTO getDetail() {
        return detail;
    }

    public void setDetail(DetailDTO detail) {
        this.detail = detail;
    }

    public static class DetailDTO implements Serializable{
        private List<ListDTO> list;
        private List<String> content;
        private ListDTO old;
        private ListDTO root;
        @SerializedName("new")
        private ListDTO newWord;
        private String analysis;
        // 1减少 2增加 3替换
        private int child_type;
        private int index; // 词根位置 从0开始 如操作原单词的第三个字母 此处为2
        private int length; // 操作长度 如操作原单词的第三个字母 操作三个长度 index为2 length为3 此字段仅在child_type为替换时使用

        // 5视频
        private String tx_id;
        private String img;
        private VideoSignBean sign_data;

        public VideoSignBean getSign_data() {
            return sign_data;
        }

        public void setSign_data(VideoSignBean sign_data) {
            this.sign_data = sign_data;
        }

        public List<String> getContent() {
            return content;
        }

        public void setContent(List<String> content) {
            this.content = content;
        }

        public List<ListDTO> getList() {
            return list;
        }

        public void setList(List<ListDTO> list) {
            this.list = list;
        }

        public ListDTO getOld() {
            return old;
        }

        public void setOld(ListDTO old) {
            this.old = old;
        }

        public ListDTO getRoot() {
            return root;
        }

        public void setRoot(ListDTO root) {
            this.root = root;
        }

        public ListDTO getNewWord() {
            return newWord;
        }

        public void setNewWord(ListDTO newWord) {
            this.newWord = newWord;
        }

        public String getAnalysis() {
            return analysis;
        }

        public void setAnalysis(String analysis) {
            this.analysis = analysis;
        }

        public int getChild_type() {
            return child_type;
        }

        public void setChild_type(int child_type) {
            this.child_type = child_type;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        public int getLength() {
            return length;
        }

        public void setLength(int length) {
            this.length = length;
        }

        public String getTx_id() {
            return tx_id;
        }

        public void setTx_id(String tx_id) {
            this.tx_id = tx_id;
        }

        public String getImg() {
            return img;
        }

        public void setImg(String img) {
            this.img = img;
        }

        public static class ListDTO implements Serializable{
            private String en;
            private String cn;

            private String img;
            private String w;
            private String h;

            public String getImg() {
                return img;
            }

            public void setImg(String img) {
                this.img = img;
            }

            public String getW() {
                return w;
            }

            public void setW(String w) {
                this.w = w;
            }

            public String getH() {
                return h;
            }

            public void setH(String h) {
                this.h = h;
            }

            public String getEn() {
                return en;
            }

            public void setEn(String en) {
                this.en = en;
            }

            public String getCn() {
                return cn;
            }

            public void setCn(String cn) {
                this.cn = cn;
            }


            private int id;
            private String user_nickname;
            private String user_avatar;
            private int can_del; // 是否可删除 0否 1是  客户端需要更新用户自身头像也可用此字段判断 可删除时即代表该记忆法为该用户上传的记忆法
            private int agree_count;
            private int disagree_count;
            private int agree_status;  // 赞同状态 -1未赞同也未不赞同 0不赞同 1赞同
            private DetailContent detail;
            private int user_count; // 共创人数量 刚提交的记忆法一定是1
            private List<CreatorDTO> user_list; // 共创人信息 刚提交的记忆法一定是空数组

            private String dictionary_id;
            private String words;
            private List<String> analysis_list;
            private String tag;//四级
            private int is_current; //是否当前单词 0不是 1是
            private int is_open; //是否展开 0不是 1是
            private List<WordSplit> split;
            private List<ListDTO> list;

            public void setDictionary_id(String dictionary_id) {
                this.dictionary_id = dictionary_id;
            }

            public void setWords(String words) {
                this.words = words;
            }

            public void setAnalysis_list(List<String> analysis_list) {
                this.analysis_list = analysis_list;
            }

            public void setTag(String tag) {
                this.tag = tag;
            }

            public void setIs_current(int is_current) {
                this.is_current = is_current;
            }

            public void setIs_open(int is_open) {
                this.is_open = is_open;
            }

            public void setSplit(List<WordSplit> split) {
                this.split = split;
            }

            public void setList(List<ListDTO> list) {
                this.list = list;
            }

            public String getDictionary_id() {
                return dictionary_id;
            }

            public String getWords() {
                return words;
            }

            public List<String> getAnalysis_list() {
                return analysis_list;
            }

            public String getTag() {
                return tag;
            }

            public int getIs_current() {
                return is_current;
            }

            public int getIs_open() {
                return is_open;
            }

            public List<WordSplit> getSplit() {
                return split;
            }

            public List<ListDTO> getList() {
                return list;
            }

            public int getUser_count() {
                return user_count;
            }

            public void setUser_count(int user_count) {
                this.user_count = user_count;
            }

            public List<CreatorDTO> getUser_list() {
                return user_list;
            }

            public void setUser_list(List<CreatorDTO> user_list) {
                this.user_list = user_list;
            }

            public DetailContent getDetail() {
                return detail;
            }

            public void setDetail(DetailContent detail) {
                this.detail = detail;
            }

            public int getId() {
                return id;
            }

            public void setId(int id) {
                this.id = id;
            }

            public String getUser_nickname() {
                return user_nickname;
            }

            public void setUser_nickname(String user_nickname) {
                this.user_nickname = user_nickname;
            }

            public String getUser_avatar() {
                return user_avatar;
            }

            public void setUser_avatar(String user_avatar) {
                this.user_avatar = user_avatar;
            }

            public int getCan_del() {
                return can_del;
            }

            public void setCan_del(int can_del) {
                this.can_del = can_del;
            }

            public int getAgree_count() {
                return agree_count;
            }

            public void setAgree_count(int agree_count) {
                this.agree_count = agree_count;
            }

            public int getDisagree_count() {
                return disagree_count;
            }

            public void setDisagree_count(int disagree_count) {
                this.disagree_count = disagree_count;
            }

            public int getAgree_status() {
                return agree_status;
            }

            public void setAgree_status(int agree_status) {
                this.agree_status = agree_status;
            }


            public static class DetailContent implements Serializable{
                private String content;// 谐音内容 此处为富文本

                public String getContent() {
                    return content;
                }

                public void setContent(String content) {
                    this.content = content;
                }
            }
            public static class CreatorDTO implements Serializable{
                private String user_nickname;
                private String user_avatar;

                public String getUser_nickname() {
                    return user_nickname;
                }

                public void setUser_nickname(String user_nickname) {
                    this.user_nickname = user_nickname;
                }

                public String getUser_avatar() {
                    return user_avatar;
                }

                public void setUser_avatar(String user_avatar) {
                    this.user_avatar = user_avatar;
                }
            }

            public static class WordSplit implements Serializable {
                public WordSplit(int is_light, String content) {
                    this.is_light = is_light;
                    this.content = content;
                }

                private int is_light;
                private String content;

                public void setIs_light(int is_light) {
                    this.is_light = is_light;
                }

                public void setContent(String content) {
                    this.content = content;
                }

                public int getIs_light() {
                    return is_light;
                }

                public String getContent() {
                    return content;
                }
            }

        }

    }
}
